#ifndef __HASHTABLE_H
#define __HASHTABLE_H

#include "dataStructure.h"
#include "node.h"
#include <iostream>


class hashTable : public dataStructure<Node**>
{
	private:
		Node** array;
		int elements;
		int size;
		int width;
		int hashFunction(int x, int y);

	public:
		hashTable();
		void addNode(Node* node);
		bool empty();
		void remove(Node** item);
		void allocate(int width, int height);
		void freeNodes();
		Node* selectNodeLowestScore();
		std::pair<Node**, Node*> findNode(int x, int y);
		void modifyNode(Node** item);
};

#endif